home *** CD-ROM | disk | FTP | other *** search
/ LSD Docs / LSD Docs.iso / FILEZ / lsd08.dms / lsd08.adf / 103 / 103
Text File  |  1988-02-16  |  21KB  |  420 lines

  1.                  VIRUS X 4.4 - By Steve Tibbett
  2.  
  3. Typed in by STEVE TIBBETT.  Edited by PARASITE.
  4.  
  5.  
  6. OVERVIEW
  7.     Viruses are a nasty fact of life for computer users, and Amiga users
  8. are not immune.  VirusX was created to give Amiga owners a simple and
  9. effective defense against these creatures.
  10.  
  11.      Viruses fall into two categories:  boot-block and other.  Boot-block
  12. viruses are so named because they live on the first two sectors of a disk,
  13. the boot-block.  When a disk is bootable (like Workbench), these sectors
  14. tell the operating system where to go to load AmigaDOS code.  A boot-block
  15. virus, however, points to its own code.  It makes sure that the virus is
  16. activated before the AmigaDOS code is loaded.  Even if this code is not
  17. malicious, this type of virus can still do damage.  Many game programs use
  18. the boot-block for their own code.  If a virus happens to over-write this
  19. code, the game will no longer work.  Most of the viruses found so far have
  20. been of the boot-block variety.
  21.  
  22.      The "other" viruses are relatively new, and are tricky to find.
  23. These kinds of viruses attach themselves to programs, in some cases
  24. replacing them, and wedge their way into the system.
  25.  
  26.      VirusX is the best defense against these creatures.  I encourage you
  27. to give VirusX to anyone who might need it.  In particular, dealers and
  28. user groups should use VirusX.  These folks, with the amount of disk
  29. copying they do, are particularly vulnerable to viruses.
  30.  
  31. HOW TO USE VIRUSX
  32.      VirusX should be run as part of the Startup-Sequence.  To do this,
  33. simply use a text editor to modify your startup-sequence.  Add a line that
  34. simply says "VirusX", and make sure that VirusX is in your c: directory.
  35. VirusX will open a small window to let you know it is there, and will
  36. automatically check any disk inserted into one of the 3.5" drives.
  37.  
  38.     (The startup-sequence is found in the S: directory of any
  39. AmigaDOS-standard boot disk, like Workbench.  If you don't know how to edit
  40. this file, refer to your Amiga manual, the AmigaDOS manual, or Rob Peck's
  41. book "The Amiga Companion.")
  42.  
  43.      If VirusX finds something suspicious, it will post a requestor
  44. warning the user of either a specific virus or a non-standard boot-block.
  45. The user will be given the option to Remove or Ignore the potential virus.
  46. WARNING:  A NON-STANDARD BOOT-BLOCK MAY NOT BE A VIRUS!  This may either be
  47. a virus that VirusX doesn't know about, or it may be a custom boot-block
  48. for a commercial program.  Make SURE that you know that the program is not
  49. using the boot-block for its own purposes before you re-write it.  VirusX
  50. will ask you if you are sure before it does anything.  (Programs which give
  51. you an AmigaDOS window are always safe to repair.)
  52.  
  53. VIRUSX OPTIONS:
  54.  
  55. COMMAND LINE OPTIONS
  56.      When you first run VirusX, you have the following command-line
  57. options:
  58.  
  59.      -a   Make virusx window active when run
  60.      -c   Don't check the CoolCapture vectors
  61.      -k   Enable KickTagPtr checking
  62.      -q   Check all floppies, then quit immediately
  63.      -r   Use this if you've 1 meg Chip RAM and using SetPatch -r
  64.      -x## Set window X position
  65.      -y## Set window Y position
  66.  
  67.      These commands are all given as arguments.  For example:
  68.  
  69. VIRUSX -a -x100 -y100
  70.  
  71.      These commands would run VirusX, make the window active, and put it at
  72. position 100,100 (on the left-and side, halfway down) of the Workbench
  73. screen.
  74.  
  75. ACTIVE WINDOW OPTIONS
  76.      While VirusX is running, you may click on its titlebar with the left
  77. mouse-button and type the following commands:
  78.  
  79.      I    Open the Info Window
  80.      C    Check all mounted floppies for viruses
  81.      ESC  Quit VirusX
  82.      #    Show bootblock in drive # (ie, 0 shows DF0:, 1 DF1: etc)
  83.  
  84.      Example:  Click in the VirusX window and type the number "1" - VirusX
  85. will examine the disk in DF1: and will display the contents of the boot-
  86. block.  This is not very useful any more, since most viruses do not contain
  87. any unencrypted text.  Repeating the command, changing the disk in the
  88. drive just checked, or clicking in the window with the right mouse-button
  89. will cause VirusX to shrink back to "titlebar" size.
  90.  
  91.      You can get VirusX to display information about how many disks it has
  92. checked and what it has found by clicking on the VirusX titlebar with the
  93. right mouse-button.  Clicking again will close the window.
  94.  
  95. GENERAL NOTES
  96.  
  97. MAIL
  98.      The best way to contact me is through the electronic network
  99. services listed below.  I've gotten far more VirusX-related mail than
  100. I thought possible, making it impossible for me to respond to "regular" mail.
  101.  
  102. NUT ALERT
  103. There will be people who are thinking that I am some nut case trying to
  104. spread my own virus hidden under the guise of a virus checker.  Well, just
  105. for you, I've included the C source code.  Please, if you don't trust me,
  106. don't brand a useful utility as untrustworthy for no reason, CHECK THE
  107. SOURCE!  Recompile it if you think I'm trying to slip a fast one by you.  I
  108. just want to see viruses out of all our lives.
  109.  
  110. DISTRIBUTION NOTICE
  111.      This program is Copyrighted, but is freely redistributable (It's NOT
  112. Shareware).  Do what you want with it, but  Please don't use it for evil
  113. purposes. That's what I'm trying to prevent.
  114.  
  115.      If you are not sure that this is the most current version of VirusX,
  116. you should check with the following sources:  The AmigaZone (American
  117. People/Link Network), BIX, Compuserve, and/or AmigaWorld.  The latest
  118. version of VirusX is available for downloading from the aforementioned
  119. networks, or from AmigaWorld for the price of $5.00, for shipping and
  120. handling.
  121.  
  122.      I can be reached on BIX as "s.tibbett" and on People/Link as "SteveX".
  123. I'm also on Compuserve, but with their dumb numbering system, I can never
  124. remember who I am.
  125.  
  126. A TALE OF TWO VIRUSES
  127.  
  128. THE BYTE BANDIT VIRUS
  129.     The Byte Bandit virus, once in memory, copies itself to a point just
  130. above the high memory pointer on the first hunk of RAM it can find. This
  131. means that it's not always in the same place.  It then wedges itself into
  132. the Interrupt Server chain, into the vectors of  Trackdisk.device, and
  133. creates a Resident structure for itself so it can hang around after reboot.
  134.  
  135.      It watches EVERY disk inserted, and will write itself to ANY bootable
  136. disk that is inserted!
  137.  
  138.      Also, if you Install a disk while this virus is active, it will copy
  139. itself back to the disk.  This is why it has to be wiped out from memory.
  140.  
  141.      When VirusX finds this virus on a disk, it will also display a "Copy
  142. Count." This represents the number of disks which have been infected by
  143. that "Branch" on the "Tree" that the virus is on.  If you infect a disk
  144. with your copy, and your copy is number 300, then that copy will be #301.
  145. If that copy infects somebody, that will be #302, but on YOUR copy, two
  146. infections down the line, there will be another #302.  The copy count on MY
  147. Byte Bandit virus was #879.
  148.  
  149.      Note that VirusX will check RAM for this virus as well as the disk.
  150. This was necessary, as you can tell from the description above.
  151.  
  152.      Special thanks must go here to Dave Hewett, who, 2 days after I gave
  153. him a copy of the virus, gave me a printed, commented disassembly of the
  154. virus with meaningful labels and everything I needed to stomp it - Thanks
  155. Dave!
  156.  
  157.      Thanks must also go to Bruce Dawson of CygnusSoft Software, (author of
  158. that great program, CygnusEd), who went to the trouble of being the First
  159. person to send me this Virus.
  160.  
  161. THE IRQ VIRUS
  162.      The IRQ Virus is a recent Amiga Virus.  This one stands out from the
  163. crowd: it is NOT found in the boot block.
  164.  
  165.      This Virus attaches itself to executable programs.  It's prime target
  166. is the C:DIR command, but it will also look at your startup sequence and
  167. attach itself to the first executable program found in the startup-
  168. sequence.
  169.  
  170. A sample chain of events:
  171.  
  172.    - You download or otherwise acquire a new program.  This program
  173.      happens to be infected.
  174.    - You execute this program.
  175.    - The Virus then attaches itself to memory (by taking over the
  176.      OldOpenLibrary() vector) and adds a KickTagPtr (for no apparent
  177.      reason).
  178.    - Now, you're on DF0: and you run a program that uses the
  179.      OldOpenLibrary() vector (hard to predict which ones do...).
  180.  
  181.      The Virus will open your startup sequence and pick the first
  182.      filename it sees.  If this file is executable it will write
  183.      itself into that file.  IF it's not executable, it will try to
  184.      write to the DIR command on that disk.
  185.  
  186.      As you can see, this virus will only effect the first file mentioned
  187. in the startup sequence or the DIR command.  The only way this Virus could
  188. possibly spread via modem is through deliberate sabotage, unless the
  189. uploader actually DID have the program as the first thing in his startup
  190. sequence before sending it to you.
  191.  
  192. WHAT IT DOES
  193.      This Virus is mostly a harmless joke.  It does not appear to kill
  194. commercial programs or do anything malicious.  It's not nice to have
  195. around, but it's certainly better than a malicious virus!
  196.  
  197.      It changes the title bar of the Initial CLI window when you boot, and
  198. it will try to write to any disk inserted - thus bringing up the "Volume
  199. whatever is write protected" requester whenever you insert a write
  200. protected disk.
  201.  
  202.      It will write itself to any disk from which you execute a file,
  203. overwriting either the DIR command or the first thing in the startup
  204. sequence.
  205.  
  206.      When this virus first installs itself (after reboot), it changes the
  207. title bar of the current window (usually the initial CLI window, since it
  208. IS the first thing in your startup sequence) to say something like
  209. "AmigaDOS Presents:  The IRQ Virus, V41.0".  This is a dead giveaway.
  210.  
  211.      This virus will not work under Kickstart 1.3 - you will get Software
  212. Error requesters whenever you run an infected program.  I'm not sure why,
  213. but this is probably good.
  214.  
  215. HOW TO KNOW IF YOU HAVE THIS VIRUS
  216.      You cannot identify a file that has this virus in it just by looking
  217. at it.  The virus encrypts the text parts of itself, and encrypts it
  218. differently on each copy, making it impossible to recognize.
  219.  
  220.      You can tell your system is infected if you put in a write protected
  221. workbench disk (or any disk that has a startup sequence), and the system
  222. brings up a "Volume <whatever> is write protected" requester.   This
  223. indicates that this virus is in RAM attempting to infect your disk.
  224.  
  225.      Running VirusX 4.4 will tell you if this virus is in RAM, and VirusX
  226. will remove it from RAM.
  227. HOW TO GET RID OF THIS VIRUS
  228.  
  229.      To get the virus out of RAM, run VirusX 4.4.  It will tell you if it
  230. found it, and that it removed it if it did.  VirusX will check disks the
  231. same way that the Virus does - it will look at the startup sequence,
  232. determine if the first file found (or the DIR command) is infected, and
  233. give you the option of repairing the the damage.
  234.  
  235.      You can also get rid of this virus simply by deleting all infected
  236. programs and rebooting.  This virus will not hang around after a reboot.
  237. Because this virus can hit a number of files, not all of which VirusX will
  238. find, I have included a small program by Dan James called KV - "KillVirus."
  239. This program will check an entire directory's worth of files for this
  240. specific virus.
  241.  
  242.      VirusX 4.4 will look in the same places as the Virus for infected
  243. programs.  If it finds one, it will pop up a window, tell you where it
  244. found it, and ask if it's OK to remove it.
  245.  
  246. HOW TO MAKE SURE YOU DON'T GET THIS VIRUS
  247.      Keep VirusX 4.4 running when you test new programs.  VirusX will
  248. alert you as soon as it sees this virus appear in memory.  If VirusX finds
  249. this virus, it probably came from the last program you ran.
  250.  
  251. TECHNICAL AND DEVELOPMENTAL NOTES
  252. SCA  - The SCA is the simplest virus to deal with, as it's not actually
  253. DOING anything except hiding in memory until you reboot.  We just look at
  254. CoolCapture and fix it to get it out of RAM.
  255.  
  256. BYTE BANDIT - The Byte Bandit virus takes the DoIO() vector and redirects
  257. it through itself.  Thus, any attempt to read or write the boot block (ie,
  258. AmigaDOS trying to figure out what kind of disk it is) results in Byte
  259. Bandit writing itself onto that disk.  VirusX couldn't just rewrite the
  260. boot block; it has to get Byte Bandit out of RAM first.  This virus also
  261. has an interrupt that crashes the machine every 5 minutes or so after it's
  262. infected a few of your disks.  Ow.  It stays in memory not via the Capture
  263. vectors, but by a Resident module.
  264.  
  265. REVENGE - Basically, this is a Byte Bandit clone which brings up an
  266. obscene pointer a few minutes after you reboot.  We treat it much like the
  267. byte bandit.
  268.  
  269. BYTE WARRIOR - Jumps right into 1.2 Kickstart.  Won't work under 1.3.
  270. Hangs around via Resident struct, and doesn't do any damage.
  271.  
  272. NORTH STAR - Like SCA, hangs around via CoolCapture.  Killing CoolCapture
  273. kills the North Star.
  274.  
  275. OBELISK SOFTWORKS CREW - Hangs around via CoolCapture, also watches reads
  276. of DoIO().  It doesn't infect EVERY disk - only the ones you boot from.
  277.  
  278. IRQ - This is the FIRST Non-Bootblock Virus.  It copies itself from place
  279. to place via the first executable program found in your startup-sequence.
  280. It SetFunction's OldOpenLibrary(), has a KickTagPtr, and lives in the first
  281. hunk of an infected program.  Thanks go to Gary Duncan and Henrik Clausen
  282. for being the first to send this one to me!
  283.  
  284. PENTAGON CIRCLE - This one looks at the DoIO vector, and has a CoolCapture
  285. vector.  It will write itself over any virus inserted, but not onto
  286. anything else.  (Neat idea!).  No danger, easy to eliminate.  Holding left
  287. button while booting with this one shows different screen colour, but
  288. doesn't get rid of it.  Thanks go to Bill Seymour (CMIBILL on Plink) for
  289. sending me this one!
  290.  
  291. SYSTEMZ VIRUS PROTECTOR - I took this one out.  It's not really a 'Virus',
  292. in that it won't overwrite a disk without asking you first.  Besides, it
  293. seems a lot of people LIKE the SystemZ Virus Protector (though it isn't
  294. perfect).
  295.  
  296. LAMER EXTERMINATOR - THIS one was a bugger.  Yet another virus
  297. aimed at hurting people.  Y'see, a Lamer is apparently the worst kind of
  298. pirate - one who doesn't crack software, doesn't write software, just
  299. collects names and addresses and collects and spreads software.   Lamers
  300. don't do anybody any good, and the guy behind this Virus took it upon
  301. himself to make their (and our) lives miserable.  This virus loads into RAM
  302. at a random location each time.  It is encrypted on the disk so you can't
  303. SEE the name of it, and it never actually SHOWS the name, but it's
  304. definitely there.  It changes the encryption key used each time it is
  305. written back to disk.
  306.      It has a counter and will wait until the machine has been reset 2
  307. times OR until 3 disks have been infected, and will then pick a DATA block
  308. (Only a DATA block - FFS disks are safe, I guess), randomly, and will write
  309. the word 'LAMER!' all through it.  This is obviously not good, and will
  310. cause  random disk errors.  This is the worst kind of havoc to wreak on the
  311. new user - and this virus is EVERYWHERE!  I've gotten it from 5 people in
  312. the last week alone (all from different countries!  Ack!).  Anyway, credit
  313. for being the first with this one goes to Christian Schneider.  Thanks,
  314. Christian!
  315.      This virus sets up a Resident structure, but never sets the Match Word.
  316. Either this means we don't need the MatchWord or it means his
  317. SumKickData() is doing the recovery job - either way, it's  new!  3 points
  318. for originality.
  319.  
  320. GRAFFITI - The first virus to come with rotating 3-d graphics!  It's neat -
  321. you might want to trigger it, though I'm not sure how, before nuking it.
  322. This one just sets CoolCapture(), does something with DoIO() during the
  323. reboot, and sets it back to normal before anybody gets to look at it.
  324. Lots of code is taken by the graphics stuff.  I just clear the CoolCapture
  325. vector.  [yawn]
  326.  
  327. OLD NORTHSTAR - Poof.
  328.  
  329. 16 BIT CREW - Well, I didn't actually have to DO anything to get   VirusX
  330. to recognize it, because it seems to operate like the Graffiti Virus.  If
  331. the 16 bit crew is in RAM, VirusX will say it removed the Graffiti virus.
  332.  
  333. DISKDOKTOR - I spent more time on this one than on any other.  Y'see, this
  334. virus does lots of things.  The first one, for some reason, was quite funny
  335. to me.  It waits until you have rebooted 5 times.  Each time you reboot
  336. after that, the virus eats 10K times the total number of reboots.  After
  337. rebooting 10 times, you would be short about 100K.  This virus also starts
  338. up another TASK.  I'm not exactly sure when it happens, but another task
  339. named 'clipboard.device' will appear at a priority of -120, and will
  340. continually bash the Virus' vectors into the Coldcapture, Coolcapture,
  341. Warmcapture (which it sets to $ff000000 just to annoy), and the DoIO()
  342. vector.
  343.      When I was working on this one, I figured I just had to restore the
  344. old values to the DoIO() vector, but as soon as I did so, the Virus
  345. restored them.  Since I hadn't disassembled the entire thing, I didn't
  346. realize this until I wasted time looking for other faults.  This one also
  347. allocates some memory, copies some code out of Exec into this memory, and
  348. executes it.  I never bothered to figure out why - Once it's gone, it's
  349. gone.
  350.  
  351. AUSTRALIAN PARASITE -  Hey - I like this one!  It says it will not destroy
  352. game bootsectors or corrupt disks, but it's still a Virus.  What makes this
  353. one unique is the way it lets itself be known.  After so many disk accesses
  354. (something like 600 blocks read off of a floppy), it turns your screen
  355. Upside Down!  Nifty.  You can still USE the screen upside down - it just
  356. looks a bit weird.  It uses the DoIO() vector, the TD Read vector, starts
  357. at SysStkLower, and that's about it.  It stays around via CoolCapture.
  358. Thanks to Martyn at 17Bit Software in England for being the first to send
  359. this to me.
  360.  
  361. GENERC 64 - This virus is not really a worrie but just a hassel, It opens up
  362. with doing stuff like "Formating the BootBlock", "Erasing your Dos.Library",
  363. and "Trying to find and erase this program, but is weak in the attempt". Just
  364. use Ye Old' VirusX 4.4 and leave your problems behind. Thanks to Jim O'Donald
  365. for sending in the puppie.
  366.  
  367. XENO - The Xeno virus does no damage that I can see.  It has the word
  368. 'fastfilesystem' embedded in it, but as far as I can tell, this is
  369. only to make sure that it does NOT infect that file, so your
  370. hard disk will remain safe.  It will also not infect any file which
  371. contains any non-alphabetical character (ie, it will infect
  372. 'Hello' but not 'Hello.exe').
  373.  
  374. LSD - This is a modified version of SCA, done by LSD. Harmless but
  375. irritating (fame at last!!)
  376.  
  377. Thanks also to Robb Walton for being the first to send one of the other
  378. ones.
  379.  
  380. VIRUS NOTES
  381. These are things that you probably should know, but may not, about
  382. what can happen with Viruses.
  383.  
  384.            - If you are trying to format a disk, and you always get a
  385.           message that Cylinder #0 of the disk is bad, it's quite
  386.           possible you have a virus in RAM (or a bad disk).  This is
  387.           because when the Formatter writes to block 0, some viruses
  388.           will prevent this (trying to save themselves).  When the
  389.           formatter reads the block back to verify, it's not the same
  390.           and it panics.
  391.  
  392.            - Some commercial programs will not work with some viruses
  393.           in RAM.
  394.  
  395.            - Not all computer failures are caused by viruses!  If you
  396.           are having problems, and you have checked your disks with
  397.           VirusX (and it reports them as clean), try looking elsewhere
  398.           for the problem.
  399.  
  400.            - There is at least one virus that can (more or less
  401.           accidentally) hit hard disks.  Some of the viruses use the
  402.           DoIO() vector to watch for any read (or write) attempts at
  403.           block 0.  Unfortunately, they do not always make sure that
  404.           it is block 0 of the Floppy drive.  If someone is writing to
  405.           block 0 of the hard disk, and the virus intercepts this, it
  406.           can write itself to the hard disk.  The virus CANNOT load
  407.           from hard disk - the hard disk's boot block is never
  408.           executed.  However, if your hard disk is an FFS volume, then
  409.           writing the virus to it will have the effect of changing it
  410.           to an OFS volume, making what's on it unusable.  You can fix
  411.           this with DiskDoctor (I believe), or using DiskX.
  412.  
  413.            - VirusX may NOT find some viruses if you run it after the
  414.           virus is already loaded.  In some cases - like the Lamer
  415.           Exterminator virus - VirusX is sees what the virus wants it
  416.           to see, not what's really there.  Run VirusX BEFORE you run
  417.           anything else, or BEFORE you load any suspicious disks.
  418.  
  419. End.
  420.